Cache memories are used in a wide variety of locations in computing devices. Cache misses occur when data that is requested by a client is not already stored in the cache. Servicing a cache miss requires fetching the requested data from a backing memory (such as system memory or a higher level cache). Prefetching techniques are used to reduce misses by prefetching data into the cache in anticipation of such data being requested by a client. Prefetching techniques are constantly in development.